package co.edu.udea.iw.prestamos.modelo.dto;

import java.util.HashSet;
import java.util.Set;

import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

import org.hibernate.validator.constraints.Email;

import com.sun.istack.internal.NotNull;

/**
 * POJO. Encapsula la entidad Usuario
 * @author Dave Rivera <daverivera90@gmail.com>
 * @version 1.0
 * @since 01-07-2012
 */
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class Usuario  implements java.io.Serializable {

	@XmlElement
	@NotNull
	@Size(min=6, max=15)
    private String cedula;
	
	@XmlElement
	@NotNull
    private Rol rol;
	
	@XmlElement
	@NotNull
	@Size(max=50)
    private String nombres;
	
	@XmlElement
	@NotNull
	@Size(max=50)
    private String apellidos;
	
	@XmlElement
	@NotNull
	@Size(max=10)
    private String oficina;
    
	@XmlElement
    @Email
    @Size(max=50)
    private String email;
    
	@XmlElement
    @NotNull
    @Size(min=6, max=16)
    private String nombreUsuario;
    
	@XmlElement
    @NotNull
    @Size(min=6, max=15)
    private String password;
    
    @NotNull
    @Size(max=32)
    private String salt;
    
    @XmlTransient
    private Set<Prestamo> prestamos = new HashSet<Prestamo>(0);

    public Usuario() {
    }

	
    public Usuario(String cedula, Rol rol, String nombres, String apellidos, String oficina, String nombreUsuario, String password, String salt) {
        this.cedula = cedula;
        this.rol = rol;
        this.nombres = nombres;
        this.apellidos = apellidos;
        this.oficina = oficina;
        this.nombreUsuario = nombreUsuario;
        this.password = password;
        this.salt = salt;
    }
    public Usuario(String cedula, Rol rol, String nombres, String apellidos, String oficina, String email, String nombreUsuario, String password, String salt, Set<Prestamo> prestamos) {
       this.cedula = cedula;
       this.rol = rol;
       this.nombres = nombres;
       this.apellidos = apellidos;
       this.oficina = oficina;
       this.email = email;
       this.nombreUsuario = nombreUsuario;
       this.password = password;
       this.salt = salt;
       this.prestamos = prestamos;
    }
   
    public String getCedula() {
        return this.cedula;
    }
    
    public void setCedula(String cedula) {
        this.cedula = cedula;
    }
    public Rol getRol() {
        return this.rol;
    }
    
    public void setRol(Rol rol) {
        this.rol = rol;
    }
    public String getNombres() {
        return this.nombres;
    }
    
    public void setNombres(String nombres) {
        this.nombres = nombres;
    }
    public String getApellidos() {
        return this.apellidos;
    }
    
    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }
    public String getOficina() {
        return this.oficina;
    }
    
    public void setOficina(String oficina) {
        this.oficina = oficina;
    }
    public String getEmail() {
        return this.email;
    }
    
    public void setEmail(String email) {
        this.email = email;
    }
    public String getNombreUsuario() {
        return this.nombreUsuario;
    }
    
    public void setNombreUsuario(String nombreUsuario) {
        this.nombreUsuario = nombreUsuario;
    }
    public String getPassword() {
        return this.password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    public String getSalt() {
        return this.salt;
    }
    
    public void setSalt(String salt) {
        this.salt = salt;
    }
    public Set<Prestamo> getPrestamos() {
        return this.prestamos;
    }
    
    public void setPrestamos(Set<Prestamo> prestamos) {
        this.prestamos = prestamos;
    }




}


